package com.xjh.service.studyjava.testproxy.staticproxy;


public class Cinema implements Movie {
    //创建一个电影类的引用
    RealMovie movie;

    //修改代理类的构造方法,让创建代理类对象的时候可以传入一个RealMovie类型的对象
    public Cinema(RealMovie realMovie) {
        //调用父类的构造方法(不知道有啥用,不写也行)
        super();
        //将传入的电影类对象赋值给在代理类创建的电影类对象的引用
        this.movie = realMovie;
    }

    //代理类重写看电影方法(以前的play方法没有改动,但是在代理类里增加了新的功能,被增强了)
    @Override
    public void play() {
        //前置处理:执行广告方法
        guanggao(true);
        //执行本类中看电影方法
        movie.play();
        //后置处理:执行广告方法
        guanggao(false);
    }

    //在代理类中定义想要增强的内容
    public void guanggao(boolean isStart) {
        if (isStart) {
            System.out.println("电影马上开始了，爆米花、可乐、口香糖9.8折，快来买啊！");
        } else {
            System.out.println("电影马上结束了，爆米花、可乐、口香糖9.8折，买回家吃吧！");
        }
    }

}



